This section is intended to provide a background or context to the embodiments of the present disclosure set forth in the claims. The description herein is not admitted to be prior art by inclusion in this section.
In order to improve the efficiency of application execution, there are more and more researches on parallelization technology. In the existing High-Level Synthesis (HLS) based on C language, OpenCL or the like, in order to achieve parallelization processing, it is necessary to extract parallelism of an application during compile time. However, such a technique is only suitable for executing regular applications, and has extremely poor performance in implementing irregular applications (e.g., graphic analysis and sparse matrix calculations, etc.).
This is because the irregular applications usually have poor locality or statically unpredictable control flows. The dependencies between tasks in such applications can only be completely determined after the input data is given during operations, thus, the existing High-level synthesis solutions are over-serialized when implementing irregular applications and the execution efficiency is very low.
Therefore, at present, to achieve parallelization of irregular applications, it is only possible to manually orchestrate the inherent parallelism of irregular applications, but the complexity of implementation is very large. Then, how to efficiently implement irregular applications becomes an urgent problem to be solved.